home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3.2 / Ham Radio Version 3.2 (Chestnut CD-ROMs)(1993).ISO / mods / caty-767 / caty767.pas < prev    next >
Pascal/Delphi Source File  |  1989-12-09  |  4KB  |  79 lines

  1. {$R-,V-,S-} (*Range, Var-String, Stack checking all off *)
  2. PROGRAM CATY767;
  3. (*▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓*)
  4.  
  5. USES
  6.     CRT, DOS,                          (* Unit files for general functions *)
  7.     Y767GLO, Y767UTIL, Y767DISP,       (* Specific to this pgm *)
  8.     Y767INST, Y767COMM, Y767RTC;
  9.  
  10. (*▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓*)
  11. PROCEDURE DoQuit; (* Shut down communications and exit *)
  12.  
  13. BEGIN (* DoQuit *)
  14.     WINDOW(2,6,79,23);
  15.     CLRSCR;
  16.     TEXTCOLOR(DFG);
  17.     TEXTBACKGROUND(DBG);                     (* Default screen colors *)
  18.     PrMessage('Restoring the normal timer interrupt.',8);
  19.     RestoreOldTimer;                         (* Restore timer int vector *)
  20.     IF NOT Test THEN BEGIN
  21.         TurnCatOff;
  22.         GOTOXY(30,9);
  23.         Peep(1500);
  24.         WRITE('Port COM',ComPort,': closed OK.');
  25.         DELAY(800);
  26.     END; (* IF NOT *)
  27.     WINDOW(1,1,80,25);
  28.     CLRSCR;                                  (* Clear screen on exit *)
  29. END; (* DoQuit *)
  30.  
  31. (*▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓*)
  32. PROCEDURE SetupFT767; (* Set up basic program functions *)
  33.  
  34. BEGIN (* SetupFT767 *)
  35.     ComPort            := 1;                 (* Default is COM1: *)
  36.     ComVec             := 12;
  37.     ComBase            := $3F8;
  38.     IRQM               := $10;
  39.     CLRSCR;
  40.     IF PARAMCOUNT > 0 THEN                   (* Command line parameters *)
  41.         IF (PARAMSTR(1) = '/2') THEN BEGIN    (* Values for COM2: *)
  42.             ComPort    := 2;
  43.             ComVec     := 11;
  44.             ComBase    := $2F8;
  45.             IRQM       := $08;
  46.         END; (* IF PARAMSTR(1) *)
  47.         IF (PARAMSTR(2) = '/D') OR (PARAMSTR(2) = '/d') THEN BEGIN
  48.             TimeZone   := TimeZone - 1;      (* For Daylight Saving Time *)
  49.             TZ         := ' EDT ';           (* Set up prompt *)
  50.         END; (* IF PARAMSTR(2) *)
  51.     IF mem[$0040:$0049] = 7 THEN             (* Get video parameters *)
  52.          ScreenSeg     := $B000              (* Monochrome display addressing *)
  53.     ELSE ScreenSeg     := $B800;             (* CGA, EGA display addressing *)
  54.     DirectVideo        := TRUE;              (* Don't use BIOS for video *)
  55.     InitClock;                               (* Initialize clock interrupt *)
  56.     MainFrame;                               (* Build screens framework *)
  57.     IF NOT Test THEN BEGIN                   (* This is for real *)
  58.         SetupSerialPort(ComPort,ComVec,ComBase,IRQM); (* Get COM_ interrupts ready *)
  59.         TurnCatOn;                           (* To get initial UPDATE *)
  60.         CatSend(AClr,26);                    (* Turn off Split, Clar, Offset *)
  61.     END (* IF NOT *)
  62.     ELSE TestFile;                           (* Test, read in simulated Update *)
  63.  
  64. END; (* SetupFT767 *)
  65.  
  66. BEGIN (*================= MAINLINE CONTROL ROUTINE ========================*)
  67.     CLRSCR;
  68.     ZeroVariables;                           (* Initialize all globals *)
  69.     FILLCHAR(MemArray,SIZEOF(MemArray),' '); (* Initialize text array *)
  70.     QuitFlag := FALSE;                       (* Set Quit flag *)
  71.     SetupFT767;                              (* Set up housekeeping *)
  72.     REPEAT
  73.         MainMenu;                            (* Loop `til EXIT key (F10) *)
  74.     UNTIL QuitFlag;
  75.     Quit := TRUE;
  76.     DoQuit;                                  (* Do an orderly shutdown *)
  77. END. (* MAINLINE CONTROL ROUTINE *)
  78.  
  79.